<?php

namespace pmvc\ioc;

interface ObjectPostProcessor {

	/**
	 * This method is called after an object is created
	 * but before it is initialized (properties set
	 * and init methods called).  Any object returned
	 * by this method will be placed into the {@ObjectFactory}
	 * instead of the actualy object.
	 * @param $name the bean name
	 * @param $id the bean id
	 * @param $object the object
	 * @return a replacement object
	 */
	function processBeforeInitialization($name, $id, $object);

	/**
	 * This method is called after an object is created
	 * and it is initialized (properties set and init 
	 * methods called).  Any object returned by this method
	 * will be placed into the {@ObjectFactory} instead of
	 * the actualy object.
	 * @param $name the bean name
	 * @param $id the bean id
	 * @param $object the object
	 * @return a replacement object
	 */
	function processAfterInitialization($name, $id, $object);

}

?>